<?php

/*
 * Абстрактный класс темы сайта.
 * Наследуется основными классами тем.
 * 
 */

namespace T4;

abstract class Theme extends \T4\View {
	
	/**
	 *
	 * @var string Имя темы в системе, например system 
	 */
	public $name;
	
	/**
	 *
	 * @var string Полный абсолютный путь до папки с темой 
	 */
	public $path;
	
	/**
	 *
	 * @var string URL до корня темы
	 */
	public $url;
	
	/**
	 *
	 * @var string Шаблон 
	 */
	public $template = 'index.html';
	
	/**
	 * Конструктор темы
	 */
	final public function __construct($template = null) {
		
		$className = get_called_class();
		$ClassNameParts = explode('\\', $className);

		$this->name			= strtolower($ClassNameParts[1]);
		$this->path			= \ROOT_PATH . '/themes/' . $this->name;
		$this->url			= 'http://' . $_SERVER['HTTP_HOST'] . '/themes/' . $this->name;
		
		$paths[] = $this->path;

		parent::__construct($paths);
				
		if ( !is_null($template) )
		    $this->template = $template;
		
		/**
		 * Сам объект передаем в шаблон
		 */
		$this->assign('THEME', $this);
		
	}
	
	/**
	 * Рендеринг темы
	 * @return string HTML 
	 */
	public function render() { 
            $this->assign('META', Meta::getAll());
            $html = parent::render($this->template);
            return $html;
	}
	
}